<?php
declare (strict_types=1);

namespace app\model;

use think\Collection;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;
use think\Model;

/**
 * @property int $mod 栏目模型
 * @property int $pid 栏目上级编号
 * @property int $tid 栏目编号
 * @property int $type 栏目类型
 * @property int $weight 栏目权重
 * @property string $description 栏目描述
 * @property string $jump 跳转连接
 * @property string $keywords 栏目关键字
 * @property string $name 栏目名称
 * @property string $template_add 文章添加模板文件
 * @property string $template_article 文章内容模板文件
 * @property string $template_edit 文章编辑模板文件
 * @property string $template_list 文章列表模板文件
 * @mixin \think\Model
 */
class PortalMenu extends Model
{

    protected $pk = 'tid';

    public static function add(string $name, int $pid = 0)
    {
        $data = [
            'name' => $name,
            'pid' => $pid,

        ];
        $db = self::create($data);
        return $db;
    }


    /**
     * 获取栏目
     * @param int $pid
     * @return array|Collection
     * @throws DataNotFoundException
     * @throws DbException
     * @throws ModelNotFoundException
     */
    public static function getMenu(int $pid): Collection|array
    {
        return self::where('pid', $pid)->cache(true, 600)->select();
    }

    public function getUrlAttr($value, $data): \think\route\Url
    {
        return url("tid/" . $data['tid']);
    }

}
